Global positioning system code phase detector with multipath compensation and method for reducing multipath components associated with a received signal

ABSTRACT

A method for compensating for multipath components in a received CDMA signal comprising a repetitive PRN code uses delay times in addition to the early, late and prompt delay times for determining if a multipath component is present in the received signal, and if so, making an adjustment to the delay time of the replica code generated by a receiver so as to minimize the difference between the correlation values for a delay time equal to −1 chip and a delay time more negative than −1 chip. In this manner, adjustments to the estimation time for the start of the PRN code can be made in a manner which minimizes the effects of multipath components. A system using additional delays and correlators in association with the code phase detector, a code numerical control oscillator and replica code generator is described for performing the above methodology. The methodology is particularly suitable for GPS receivers and may further be used in receivers that receive any type of digital sequence spread spectrum, code division multiple access signals. Compensation for multipath components with 180 degree phase shifts is also made as well as compensation due to smoothing of the triangular correlation function due to RF characteristics and non-ideal PRN codes.

TECHNICAL FIELD

[0001] The present invention relates to global positioning systems (GPS)and in particular, to any satellite navigation system. It is alsogenerally directed to direct sequence spread spectrum (DSSS)code-division multiple access (CDMA) communication systems.

BACKGROUND OF THE INVENTION

[0002] Satellite navigation systems are systems which use a plurality ofsatellite vehicles (SVs) to provide accurate timing signals andnavigation data which can be utilized by a navigation receiver todetermine the range between the receiver and a satellite. By determiningthe range for at least four SVs, three-dimensional position location viaintersection of the associated ranging spheres can be used to determinethe three-dimensional location of the receiver; that is, the position ofthe receiver with respect to the surface of the earth as well as itsheight relative to the surface of the earth (the height may representthe elevation of the receiver on the earth or the height of the receiverabove the earth in situations where the receiver is in some type ofaircraft or the like; the fourth SV is necessary for local clockcorrection).

[0003] The concept underlying range determination is time-of-arrival(TOA) ranging, that is determining a position between the source of asignal and a receiver receiving the signal by measuring the propagationtime of the signal from the transmitter to the receiver. In order toaccomplish this TOA determination, it is necessary that SVs accuratelyand repetitively generate timing signals based upon a system clock whichis effectively synchronized to the receiver system clock. It is therebypossible to determine the length of time it takes the signal to traversethe distance between the transmitter (satellite) and the receiver, andby knowledge of the propagation speed of the propagating signal(typically the propagation speed of the speed of light, c), it ispossible to determine the distance between the satellite and thereceiver.

[0004] Through similar range information for at least four SVs, theintersection of the three ranging spheres denotes two points(locations), one of which is the correct position of the receiver. Thetwo candidate locations are mirror images of one another with respect tothe plane of the three SVs and for a user on the earth's surface, it istherefore apparent that the lower location will be the receiver's trueposition. For users above the earth's surface, such unambiguousdetermination is not always possible without ancillary information.General information concerning the satellite navigation system deployedby the United States (which is commonly referred to as GPS), as well asthe satellite navigation system deployed by Russia's Ministry of Defence(known as the Global Navigation Satellite System-GLONASS-) is presentedin Understanding GPS Principles and Applications, E. D. Kaplan, Editor,Artech House Publishers, Copyright 1996.

[0005] With respect to the discussions herein, the acronym GPS willgenerally refer to any type of satellite navigation system.

[0006] In order to generate such timing signals and navigation datawhich can be used by the receiver to determine the position of the SV atthe time of generating a timing signal, the satellite system employs acharacteristic frequency methodology. In particular, GPS satellitesignals include frequency assignment, modulation format and thegeneration of pseudo-random noise (PRN) codes. Each GPS satellitetransmits two carrier frequencies, L1, the primary frequency, and L2,the secondary frequency. The carrier frequencies are modulated by spreadspectrum codes with a unique PRN sequence associated with each SV and atleast one carrier frequency is further modulated by the navigation data.All GPS SVs transmit at the same two carrier frequencies but theirsignals are effectively non-interfering with each other due to theunique PRN codes that are essentially non-correlating to each other.Thus the PRN code sequences for each of the SVs are nearly uncorrelatedwith respect to each other and thus the SV signals can be separated anddetected by a technique known as code-division multiple access (CDMA).Detailed discussion of this modulation technique is presented in Chapter4 of Understanding GPS Principles and Applications. The specific PRNCDMA codes used for the GPS SVs are sometimes referred to as Gold codes.

[0007] As discussed earlier, the GPS receiver's primary task is themeasurement of range and range rate (that is the change in range)between itself and each of a plurality of visible SVs. To perform thistask the satellite receiver must also demodulate the received navigationdata. The navigation data consists of a 50 bits per second data streamwhich is modulated onto the GPS PRN modulated signal. Navigation datacontains the SV clock information as well as the orbital elements forthe SV, the latter elements used to compute the position of the SV atthe time of generation of the received PRN code. Details concerningfundamentals of satellite orbits can be found in Section 2.3 of theabove-identified text, Understanding GPS Principles and Applications.

[0008] The GPS signal modulation format is known as direct sequencespread-spectrum. An overview of GPS signal processing is presented inBraasch, M. S., “GPS Receiver Architectures and Measurements,” Proc. ofthe IEEE, Vol. 87, 1. Jan. 19, 1999, pp 48-64. As there discussed, in aspread-spectrum system the data are modulated onto the carrier such thatthe transmitted signal generally has a much larger bandwidth than theinformation rate of the data. The spread spectrum system typically usesa deterministic signal known to the receiver (the PRN code) which isused by the transmitter to modulate the information signal and spreadthe spectrum of the transmitted signal. Finally, the spread-spectrumsystem uses a receiver which cross correlates the received signal with acopy of the deterministic signal in the process of demodulating the dataand by so doing, the transmitted data is recovered.

[0009] The type of spread-spectrum used by the GPS satellite system isbinary phase shift keying direct sequence spread-spectrum (BPSK DSSS).The term “direct sequence” means that the spreading of the spectrum isaccomplished by phase modulation of the carrier. Binary phase shiftkeying is the simplest form of phase modulation where the carrier isinstantly phase shifted by 180 degrees at the time of a bit change.

[0010] Thus during normal navigation operation, a GPS receiver mustadjust a local deterministic signal (replica code), which for GPSreceivers is the PRN CDMA code, in order to determine a match of thisPRN CDMA code with the PRN code received and thereby identify thesatellite as well as the timing signal which is embodied in the PRN codereceived. In addition, the receiver must employ a Doppler CompensationCircuit for each satellite being received.

[0011] The operation of the continuously adjusting the local replica PRNCDMA code generator is known as code phase tracking, while the DopplerCompensation Circuit adjustment for each SV is known as carrier phasetracking. The tracking sub-systems are often referred to as trackingloops in order to emphasize the fact that tracking involves aclosed-loop control system. As noted earlier, what makes the GPSsatellite system different from typical CDMA communication systems isthe fact that the DSSS spreading code is not only a modulation method ormultiple access method but is also a technique used to accuratelymeasure the propagation delays from each SV to the receiver. It thusrepresents a timing signal which is used to determine the range betweeneach satellite and the receiver.

[0012] Algorithms are used by GPS receivers that can estimate the delay(time of arrival) of each SV code with accuracy which is better than thenumber of bits in the spreading code, which for civilian GPS use is1,023 bits per second. This PRN spreading code is known as courseacquisition (C/A) (a higher frequency “P” code is also transmitted bythe SVs—this P code has a frequency ten times that of the C/A code,although the P code is encrypted and is generally not available forcivilian use). In order to emphasize that these 1,023 bits do notrepresent data bits, these bits are normally referred to as “chips” inGPS parlance. Thus the specific PRN code sequence for each SV isrepetitively transmitted by the specific SV every millisecond.

[0013] Since the course acquisition (C/A) code has a 1 millisecondperiod which repeats constantly, the code length effectively limits theprecision of the range determination. To achieve sub-chip delaymeasurement accuracy, it is necessary to take into account, multipathpropagation effects in order to mitigate these effects. Multipathpropagation effects occur when the signal from the SV to the receiver isreceived in not only the direct unobstructed path, but along other pathssuch as reflection off of buildings, surrounding structures, aircraftand the like. The most harmful multipath components are components withdelay differences of 0 to 1.0 chip corresponding respectively to 0nanoseconds and 1 microsecond delays. At the propagation speed of light(c), these chip delays correspond to 0 meter and 300 meter pathdifferences respectively.

[0014] Thus the resistance of the code phase detector of the satellitereceiver to multipath contaminated signals is a very importantcharacteristic that dominates range determination and thus positioningaccuracy.

SUMMARY OF THE INVENTION

[0015] The present invention is directed to minimizing the effects ofmultipath disturbances of GPS signals so as to maintain precise timingwith respect to the received PRN CDMA code. Multipath components of theSV signal are components which do not take a direct path to the receiverbut rather arrive later than a direct line path. Such multipathcomponents can result from reflections caused by aircraft, buildings,terrain and the like and effectively degrade the received GPS signal.Since each multipath component arrives at the receiver after thestraight line signal (that is non-reflected signal), the multipathcomponents do not affect the starting point of the leading edge of thecorrelation function. The correlation function is the correlationbetween the received PRN CDMA code and the replica PRN code generated atthe receiver which is used to determine when the PRN CDMA code hasarrived at the receiver. It is observed that a comparison of theamplitude of the correlation function at the beginning of the leadingedge of the correlating region to the amplitude of the correlationfunction in a non-correlating region should yield a value of zero.However, it is also observed that this initial point (at −1 bit or ascommonly called −1 chip) begins to climb up the leading edge of thecorrelating region if multipath components of the received signal arepresent. This initial (−1 chip) point movement is due to multipathskewing of the correlation triangle. This initial point movement can bemeasured and used to compensate for multipath effects.

[0016] The present invention uses this information concerning movementof the initial point of the correlation function due to receipt ofmultipath components of the CDMA code to compensate for such componentsand thereby correct the location of the start of the PRN CDMA code. Thisstart point is the point of maximum correlation and is called the prompt(P) correlator. Thus the multipath component effects on the exact timingof the receipt of the PRN CDMA code is minimized, thereby giving greateraccuracy to the range determination between the SV and the receiver.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] For a fuller understanding of the nature and objects of thepresent invention, reference should be made to the following detaileddescription, taken in conjunction with the following drawings in which:

[0018]FIG. 1 is an overall block diagram of the GPS code and carriertracking loops according to the present invention.

[0019]FIG. 1A is a block diagram showing the use of a shift register toperform the function of the delay module shown in FIG. 1.

[0020]FIG. 2A is a diagram showing ideal correlation of a repetitive PRNcode with a replica PRN code.

[0021]FIG. 2B is a diagram of the correlation function of a received PRNcode to a replica PRN code, where the received signal containing the PRNcode has −6 dB multipath components at 0.5 chip delay.

[0022]FIG. 3 shows an ideal correlation function similar to FIG. 2A,also showing two variables, E1 and E2, that are used to minimize theeffects of multipath components.

[0023]FIG. 4 is a diagram similar to FIG. 3 showing the position ofvariables E1 and E2 as well as the movement of the prompt correlator Pdue to multipath components in the received signal.

[0024]FIG. 5 is a diagram similar to FIG. 4 showing how a 180 degree outof phase multipath component can skew the correlation triangle to theleft.

[0025]FIG. 6 is a flow chart of the correlation methodology according tothe present invention.

DETAILED DESCRIPTION

[0026] As discussed above, a GPS receiver must replicate thepseudo-random noise (PRN) code that is repetitively transmitted by asatellite vehicle (SV) as such a code is received by the receiver. Thereceiver must further phase shift this replica code until it correlateswith the SV PRN code. In practice, the course/acquisition (C/A) PRN codeused for civilian use of GPS satellite systems comprises a 1,023 bit PRNsequence, with each sequence for each satellite being unique andpredominately non-correlated to the PRN code sequence of the remainingsatellites in the constellation of satellites forming the overallsatellite global position satellite communication system. Thesenon-correlating PRN codes used by the constellations of satellites areknown as “Gold” codes. Thus when the phase of the GPS receiver replicacode matches the phase of an incoming SV CDMA code, there is maximumcorrelation similar to what is ideally shown in FIGS. 2A and 3. When thephase of the replica code is offset by more than 1 bit (which isreferred to in GPS terminology as 1 chip) on either side of an incomingSV PRN CDMA code, there is minimum correlation. This result is true forany PRN code correlation as more fully discussed in Understanding GPSPrinciples and Applications, Section 4.1.3. Further details illustratingcorrelation of a PRN code can be found athttp://www.utexas.edu/depts/grg/gcraft/notes/gps/gps-html (in particularthe C/A code phase assignments, the C/A code PRN chips and theCorrelation Animation portions thereof).

[0027] Furthermore, the GPS receiver must also detect the satellitevehicle carrier by replicating the carrier, its phase and Doppler shift.Therefore the GPS signal acquisition and tracking process is atwo-dimensional (code and carrier) signal replication process. Furtherdetails concerning GPS signal acquisition and tracking can be found atChapter 5 of the above-mentioned text.

[0028] The carrier frequencies of the GPS satellite system uses twofrequencies called L1 (1575.42 MHz) and L2 (1227.6 MHz) with thesatellite ranging code (PRN code) and the navigation data (dataconcerning orbital elements, satellite time and other data) beingencoded by using code division multiple access (CDMA) of at least one ofthese two carrier frequencies. The navigation data provides thesatellite receiver with the information necessary to determine thelocation of the satellite at the time of PRN transmission and comprisesa 50 bit per second modulation of at least one carrier frequency whilethe ranging code is a PRN code which enables the user's satellitereceiver to determine the transit time; that is, the propagation time ofthe signal from the SV to the receiver and thereby provide a means fordetermining the SV to user range based on time of arrival (TOA)techniques.

[0029] In the code or range dimension, the GPS receiver accomplishes thecorrelation process by first searching for the phase of the particularSV that it is attempting to track and then tracking the SV code state byadjusting the nominal chipping rate of the receiver's replica codegenerator so as to compensate for Doppler-induced effects of the SV PRNcode due to the relative dynamics between the receiver and the SV. Thatis, as the SV is approaching the receiver, the apparent frequency of thereceived code increases whereas if the SV is moving away from thesatellite receiver, the apparent frequency of its PRN code decreases.

[0030] Thus, the satellite receiver must replicate the carrier signal ofthe SV so that it matches the frequency of this SV carrier. If thecarrier signal is successfully acquired by successfully replicating theSV code and carrier frequency during an initial search process, thesatellite receiver can determine the time of arrival of the SV code andthereby determine the range of the SV through use of the above mentionednavigation data which determines the position of the satellite at thetime of the code transmission.

[0031] Initially, correlators used in satellite receivers wererelatively expensive and consequently only one correlator bank of threecorrelators typically was used. This resulted in the need to dosequential satellite measurements which introduced many sources fornavigation inaccuracies.

[0032] Modern low-cost portable consumer GPS receivers have twelvecorrelator banks and can thus track all visible SVs at the same time.

[0033]FIG. 1 shows a correlator bank 11 and other components of the codetracking loop 8 of a GPS receiver, which uses the techniques of thepresent invention to minimize the effects of multipath components in thereceived signal. The correlator bank comprises correlators 12 whichtypically cover a delay range of 2 chips and thus the correlationtriangle shown in FIG. 2 is entirely covered. FIG. 1 also shows thecarrier tracking loop 9 of a GPS satellite receiver.

[0034] The GPS carrier tracking loop 9 incorporates a carrier phasedetector 14, a carrier loop filter 16 and a numerically controlledoscillator (NCO) 18. The carrier phase detector receives an input signalfrom one of the correlators 12, typically the correlator 12′ associatedwith the point of maximum correlation (called the Prompt (P)correlator).

[0035] The purpose of the carrier tracking loop is to make adjustmentsat the receiver for variations in the carrier frequency due to Dopplereffects; that is, the effects associated with the SV moving toward oraway from the receiver.

[0036] The code tracking loop 8 is responsible for tracking the incomingPRN code generated by a particular SV. Each SV generates a unique PRNcode. For civilian use, each PRN code comprises 1,023 bits (chips)generated every 1 millisecond. The particular PRN code for a particularSV is unique to that SV and the particular PRN codes for the other SVsforming the GPS satellite constellation are chosen to have minimumcross-correlation to one another, thereby facilitating detection of eachSV with minimum interference from the PRN codes received from the otherSVs. In order to do this detection, a correlation is made between thereceived PRN code from the SV and a replica code generated by a replicacode generator 22. The replica code generator signal is delayed for aperiod of time by a delay module 24, with there being multiple delaymodules 24 for generating multiple delayed output signals 25 such thatthe output signals represent a shifting of the replica code in phase.For the system shown in FIG. 1 the sample rate is twice the chipfrequency f_(c) 43 and thus each delay mode is ½ chip. In this way thecorrelators can effectively correlate each of the delayed signals withthe incoming PRN code to determine which correlator has the maximumcorrelation value as generated by the correlator outputs 26. It shouldbe noted that these correlator outputs represent the magnitude of thecorrelation based upon the real (I) and complex (Q) values of same.

[0037] These output signals are presented to a code phase detector 28which measures these correlation output signals and based upon thevalues of the associated signals, generates a code phase detector outputsignal 30 for causing an adjustment to the generation of the replicacode on output 23 so that the maximum correlation value occurs for theprompt (P) correlator 12′. This adjustment is performed in associationwith a code loop filter 32 having an output 35 connected to anumerically controlled oscillator 34 for adjusting the phase of thereplica PRN code by adjusting the frequency of its output signal 37(fco). As seen in FIGS. 1 and 1A, the delay modules 24 can beimplemented by use of a shift register 39. The signal f_(nco) 41generated by the NCO 34 is used to clock the shift register. For asampling rate equal to twice the chip rate, samples of the replica codeare stored every ½ chip.

[0038] As also seen in FIG. 1A, each correlator 12 typically comprises amultiplier 45 and an integrator and dump module 47.

[0039]FIG. 3 is an illustration of the triangular shaped correlationoutput for an ideally received PRN code when a match is made between thereceived code and the generated replica code. As seen in FIGS. 1 and 3,the incoming satellite receiver signal 15 is first downconverted bydownconverter 13 and then digitized by digitizer 17 so as to generate adigitized output 19. This digitized signal is then multiplied (mixed) bymultiplier 20 with carrier phase adjusted signal 21 from the carrierloop. The output of the multiplier is the received PRN code 27 which issimultaneously presented to each correlator 12 in correlator bank 11.

[0040] As seen in FIG. 3, for an ideal signal without multipathcomponents, the correlation triangle 29 would occur for eachrepetitively received PRN code.

[0041]FIG. 1 illustrates how this correlation is determined. Althoughmore than three correlators can be used, the correlation principle isbased on three correlators. The last correlator is called the late (L)correlator, the next to the last correlator is the prompt (P) correlator12′, and the third from the last correlator is the early (E) correlator.The code phase detector makes a measurement of the E−L correlation value(see E−L code phase detector 31). If E−L is not equal to zero, the NCO34 is adjusted until the phase of the replica code is adjusted to thepoint where E−L=0. Typically the early (E) correlator is phase shifted ½chip from the prompt (P) correlator, as is the late (L) correlator butin the opposite direction. As can be seen in FIG. 3, if the replica codeis slightly out of phase with respect to the received PRN code (see E′and L′, or E″ and L″), then the E−L code phase detector has informationabout the magnitude and direction of the required NCO adjustment inorder to correct for this phase error.

[0042] It should be noted in FIG. 3, that an ideal correlation withoutmultipath is non-zero starting at −1 chip and ending at +1 chip.Therefore a correlator delay of −1 chip (such as the E2 correlatorvalue) should be zero when E−L=0. Similarly, a correlator delay of morethan −1 chip (such as −1.5 chip for correlator E1) will also have a zerocorrelation value. Thus the delay value for each delay module 24 is 0.5chip for the three correlators associated with E, P and L as well as forE2 and E1. A shift register 39 can be used to perform the functions ofall the delay modules 24 as shown in FIG. 1A. If a more rapid samplingrate is desired, the number of correlators is proportional to thesampling rate increase. For example if one-tenth chip spacing isdesired, then a twenty bit shift register is used for the delays inassociation with twenty correlators. The E1 and E2 values would requireat least two more bits to the shift register and two more correlators.The number of bits for the shift register may be greater than two if thedelay spacing is to be approximately 0.5 chip for E1 compared to E2.

[0043] Multipath Considerations

[0044] The triangular correlation function 29 shown in FIGS. 2 and 3will be distorted when there is one or more multipath components of thereceived signal. Thus FIG. 2B shows the theoretical distortion of acomplex correlator output with a −6 dB or 0.5 chip delayed multipathsignal. In an actual bandlimited case the “sharp corner” at 0 delay ismuch more rounded. It is seen in FIGS. 2B and 4 that the presence of oneor more multipath components can shift the determined prompt (P)correlator phase. How this result occurs can be seen by reference toFIG. 4. As seen in FIG. 4, the multipath component(s) can change theshape of the correlation triangle to a multi-segment shape 29′. It isthen possible for the E−L detector to have a zero output whichincorrectly places the prompt (P) correlator to the right of time ofmaximum correlation (0 chip delay).

[0045] But as also seen in FIG. 4, in such a situation, the E2correlator value has “climbed up” the correlation “triangle” and thusE2−E1>0. This value of E2−E1 can then be used to further adjust the NCO34 so as to move the phase of the replica code to the left (for theexample shown in FIG. 4, this shift to the left would be −0.2 chip).

[0046] As seen in FIG. 5, it is possible that multipath can shift thetiming to the left in which case E2−E1 would remain at zero. Such ashift to the left is the result of a multipath component(s) being forexample 180 degrees out of phase with the direct path signal. Such amultipath component is seen by component 41. When this component isadded to the direct path component correlation triangle 43, theresultant correlation function is defined by points a, b, c, d, e and f.It is therefore seen that for a ½ chip sampling rate, the E*−L* detectoris skewed to left which causes the prompt delay point to be skewed tothe left at location P*, rather than the true point of maximumcorrelation at point P. In this case E2−E1 would equal zero since thesedelay points are also skewed to the left (see E2* and E1*).

[0047] To avoid this situation the E−L discriminator 31 in the codephase detector 28 is modified to force the timing values to the right byadding a constant C1 to the E−L detector output. Thus the timingestimate is calculated until E−L−C1=0. The value of C1 should be aslarge as the maximum shift to the left that is likely to be asencountered. Typical values for constant C1 are in the range from ˜15 to0.3.

[0048] For example with C1=0.25 the E−L−0.25=0 location would result inP being shifted to point P′ to the right of the true point of maximumcorrelation (P) (see E′ and L′ with P′ at the midpoint). However it isthen seen that E2′ has “moved up” the correlation curve. Thus sinceE2′−E1′>0, the E2−E1 detector causes an adjustment to the left untilE2−E1=0, which moves the prompt correlator to the true point of maximumcorrelation at point (P).

[0049] In addition, it should be noted that the PRN Gold codes are notideal (the codes do have some cross-correlation) and the limitedbandwidth of the signals smoothes the correlation function as seen inFIGS. 2A, 2B, 3 and 4. Low level received signals also affect thecorrelation function. As a result, E2−E1 is compared to a constant C2that is determined based upon system characteristics. The smoothing oftriangular correlation function causes the actual value of E2 to not beat a zero level when the prompt delay is at the point of maximumcorrelation, but rather E2 is slightly positive. This smoothing of thetriangular correlation function depends on the RF performance of the GPSreceiver as well as the channel characteristics of the signaltransmission. In addition, some of the PRN “Gold” codes do not have anautocorrelation function that is exactly triangular in shape but mayhave some artifacts. Thus the value of C2 can be adjusted depending onwhich SV is being received. A typical value of C2 is in the range from 0to 0.1.

[0050] With this modification, the code phase detector sequence is asfollows:

[0051] Calculate timing estimates based upon E−L=C1.

[0052] If E2−E1>C2, use E2−E1−C2 as the timing estimate.

[0053]FIG. 6 is a flow chart illustrating this methodology.

[0054] In this manner, the effects from multipath components areminimized and these effects can be minimized even with limited bandwidthcodes and in the presence of low signal levels. Thus this methodologyfor minimizing the effects from multipath components considerablyimproves the delay estimation accuracy for the GPS receiver. By betterdetermining the delay estimate of the replica code, a better timingmatch to the incoming PRN code is achieved. Since the incoming GPS PRNcode is used to determine TOA (based upon the fact that it is generatedfrom a stable system clock at the SV), a better delay estimate yields abetter TOA which therefore yields a better positioning range for that SVand ultimately a better positioning accuracy as determined by the use ofmulti SVs in traditional GPS positioning methodology.

[0055] Although the preferred embodiment of the invention uses thetraditional E−L detector as the main detector for purposes of makingtiming estimation with the further use of the E2−E1 values, any otherkind of detector beside the E−L detector can be used.

[0056] The overall methodology for compensating for multipath componentsis an easy to implement methodology which yields good multipathrejection. The circuitry necessary to implement this methodology isstraight-forward and makes use of additional variables (E1, E2) whichare used by the code phase detector to further determine if there aremultipath components present and if so, how to better determine thetiming estimation for the replica code generator.

[0057] It is readily apparent to those skilled in the art that theobjects set forth above have been efficiently attained, and sincecertain changes may be made in carrying out the above method and inconstruction set forth without departing from the scope of theinvention, it is intended that all matter contained in the abovedescription or shown in the accompanying drawings shall be interpretedas illustrative and not in a limiting sense.

[0058] It should also be understood that the following claims areintended to cover all of the generic and specific features of theinvention herein described, and all statements of the scope of theinvention which, as a matter of language, might be said to falltherebetween.

Having described the invention, what is claimed is:
 1. A method ofreducing the effects of multipath signal components associated with areceived direct path signal comprising a carrier frequency that ismodulated by a repetitive pseudo-random noise (PRN) code having M chipsof code length, where M is a positive integer, comprising the steps of:demodulating the receive signal to obtain the PRN code; generating areplica code corresponding to the pseudo-random noise (PRN) code of thereceived signal; delaying the generated replica code for at least first,second and third different delay times equal in delay distance from eachother, where each delay distance is less than one chip; further delayingthe replica code for a fourth delay time equal to 1 chip from the seconddelay time and further delaying the replica code for a fifth delay timeequal to more than one chip from the second delay time; correlating eachdelayed replica code with the demodulated PRN code so as to generate acorrelation value for each delayed replica code; adjusting the starttime of the replica code generator until the first and third delay timecorrelation values are substantially equal to each other and are greaterthan a predetermined value; determining if the correlation values forthe fourth and fifth delay times are substantially equal to each otherand if the fourth and fifth correlation values are not substantiallyequal to each other, adjusting the replica code generator so as to causethe fourth and fifth correlation values to be substantially equal toeach other; and; considering the second delay time to be the start ofthe PRN code.
 2. A method of reducing the effects of multipath signalcomponents as defined in claim 1, wherein the first delay timecorrelation value is called the late (L) correlation value, where thesecond delay time correlation value is called the prompt (P) correlationvalue, where the third delay time correlation value is called the early(E) correlation value, where the fourth delay time correlation value iscalled the E2 correlation value, and where the fifth delay timecorrelation value is called the E1 correlation value, and wherein thestep of adjusting the start time of the replica code generator includesthe step of adjusting the start time of the replica code generator untilE−L−C1 is equal to a predetermined value, where C1 is a constant, andfurther wherein the step of determining if the correlation values of thefourth and fifth delay times are substantially equal is performed bydetermining if E2−E1>C2, where C2 is a constant, and if E2−E1>C2, thenfurther adjusting the start time of the replica code generator untilE2−E1−C2 is equal to a predetermined value.
 3. A method of reducing theeffects of multipath signal components as defined in claim 2, whereinthe value of constant C1 is in the range from 0.15 to 0.3.
 4. A methodof reducing the effects of multipath signal components as defined inclaim 3, wherein the value of constant C2 is in the range from 0 to 0.1.5. A method of reducing the effects of multipath signal components asdefined in claim 4, wherein the E1 delay time is a delay ofapproximately −1.5 chips from the second delay time.
 6. A system forreducing the effects of multipath signal components associated with areceived direct path signal comprising a carrier signal that ismodulated by a repetitive pseudo-random noise (PRN) code having M chipsof code length, where M is a positive integer, comprising: A) means forextracting the PRN code from the received signal; B) a replica codegenerator for repetitively generating a replica code corresponding tothe pseudo-random noise (PRN) code of the received signal; C) anumerically controlled oscillator (NCO) for adjusting the start time andfrequency of the replica code generator to generate the replica PRNcode; D) a plurality of delay modules in sequence with the replica codegenerator for delaying the generated replica code for at least first,second and third different delay times equal in delay distance from eachother, where each delay distance is less than one chip and for delayingthe replica code for a fourth delay time equal to 1 chip from the seconddelay time and further delaying the replica code for a fifth delay timeequal to more than one chip from the second delay time; E) a pluralityof correlators each for receiving a replica code from the output of adifferent delay module and for receiving the PRN code from the receivedsignal, each correlator generating a correlation value; F) a code phasedetector receiving the outputs of the plurality of correlators forgenerating an adjustment signal; G) means, receiving the adjustmentsignal from the code phase detector, for filtering the adjustment signaland presenting the filtered adjustment signal to the NCO; wherein theadjustment signal generated by the code phase detector causes anadjustment in the start time of the replica code generator until thefirst and third delay time correlation values are substantially equal toeach other and are greater than a predetermined value and furtherwherein the code phase detector has means for determining if thecorrelation values for the fourth and fifth delay times aresubstantially equal to each other and if the fourth and fifthcorrelation values are not substantially equal to each other, causingthe adjustment signal to adjust the replica code generator so as tocause the fourth and fifth correlation values to be substantially equalto each other, whereby the second delay time after said adjustments isconsidered to be the start of the received PRN code.
 7. A system forreducing the effects of multipath signal components as defined in claim6, wherein the first delay time correlation value is called the late (L)correlation value, where the second delay time correlation value iscalled the prompt (P) correlation value, where the third delay timecorrelation value is called the early (E) correlation value, where thefourth delay time correlation value is called the E2 correlation value,and where the fifth delay time correlation value is called the E1correlation value, and wherein the adjustment signal generated by thecode phase detector includes means for generating an adjustment signalfor adjusting the start time of the replica code generator until E−L−C1is equal to a predetermined value, where C1 is a constant, and furtherwherein the code phase detector determines if the correlation values ofthe fourth and fifth delay times are substantially equal to each otherand for causing the generation of an adjustment signal to cause thefourth and fifth correlation values to be substantially equal to eachother is performed by said code phase detector having means fordetermining if E2−E1>C2, where C2 is a constant, and if E2−E1>C2, thenfurther generating an adjustment signal to adjust the replica codegenerator until E2−E1−C2 is equal to a predetermined value.
 8. A systemfor reducing the effects of multipath signal components as defined inclaim 7, wherein the value of constant C1 is in the range from 0.5 to0.3.
 9. A system for reducing the effects of multipath signal componentsas defined in claim 8, wherein the value of constant C2 is in the rangefrom 0 to 0.1.
 10. A system of reducing the effects of multipath signalcomponents as defined in claim 9, wherein the E1 delay time is a delayof approximately −1.5 chips from the second delay time.
 11. A device forreducing the effects of multipath signal components associated with areceived direct path signal forming an overall received signal, whereineach component and direct path signal is modulated by a repetitivepseudo-random noise (PRN) code having M chips of code length, where M isa positive integer, comprising: A) a replica code generator forrepetitively generating a replica code corresponding to thepseudo-random noise (PRN) code of the received signal; B) a numericallycontrolled oscillator (NCO) for adjusting the start time and frequencyof the replica code generator to generate the replica PRN code; C) meansfor delaying the replica code a plurality of times having the same delaylength between adjacent delayed replica codes; D) means for correlatingeach delayed replica code with the overall received signal; E) a codephase detector receiving the outputs of the correlating means forgenerating an adjustment signal and presenting said adjustment signal tothe NCO so as to adjust the start time for the replica code generator;wherein the adjustment signal generated by the code phase detectorcauses an adjustment in the start time of the replica code generatoruntil the difference between two time correlation values aresubstantially equal to a first predetermined value provided that thedifference between the correlation values for two other delay times areless than a second predetermined value, and if the difference betweensaid two other correlation values is greater than said secondpredetermined value, causing an adjustment in the start time of thereplica code generator until said difference between the correlationvalues of said two other delay times is less than said secondpredetermined value.
 12. A device for reducing the effects of multipathsignal components associated with a received direct path signal formingan overall received signal as defined in claim 11, wherein the means fordelaying the replica code a plurality of times delays the replica codeat least five times, wherein the first delay time correlation value iscalled the late (L) correlation value, where the second delay timecorrelation value is called the prompt (P) correlation value, where thethird delay time correlation value is called the early (E) correlationvalue, where the fourth delay time correlation value is called the E2correlation value, and where the fifth delay time correlation value iscalled the E1 correlation value, and wherein the adjustment signalgenerated by the code phase detector includes means for generating anadjustment signal for adjusting the start time of the replica codegenerator until E−L−C1 is equal to a predetermined value, where C1 is aconstant, and further wherein the code phase detector determines if thecorrelation values of the fourth and fifth delay times are substantiallyequal to each other and for causing the generation of an adjustmentsignal to cause the fourth and fifth correlation values to besubstantially equal to each other is performed by said code phasedetector having means for determining if E2-E1>C2, where C2 is aconstant, and if E2−E1>C2, then further generating an adjustment signalto adjust the replica code generator until E2−E1−C2 is equal to apredetermined value.
 13. A system for reducing the effects of multipathsignal components as defined in claim 12, wherein the value of constantC1 is in the range from 0.15 to 0.3.
 14. A system for reducing theeffects of multipath signal components as defined in claim 13, whereinthe value of constant C2 is in the range from 0 to 0.1.
 15. A system forreducing the effects of multipath signal components as defined in claim12, wherein the value of constant C2 is in the range from 0 to 0.1. 16.A device for reducing the effects of multipath signal componentsassociated with a received direct path signal forming an overallreceived signal as defined in claim 12, wherein the means for delayingthe replica code a plurality of times delays the replica code N times,and wherein the delay length between adjacent delayed replica codes isequal to $\frac{1}{2 \cdot {fc}},$

where fc is the chip frequency of the PRN code.
 17. A device forreducing the effects of multipath signal components associated with areceived direct path signal forming an overall received signal asdefined in claim 11, wherein the means for delaying the replica code aplurality of times delays the replica code N times, and wherein thedelay length between adjacent delayed replica codes is equal to$\frac{1}{2 \cdot {fc}},$

where fc is the chip frequency of the PRN code.
 18. A method forreducing the effects of multipath signal components associated with areceived direct path signal forming an overall received signal, whereineach component and direct path signal is modulated by a repetitivepseudo-random noise (PRN) code having M chips of code length, where M isa positive integer, comprising the steps of: repetitively generating areplica code corresponding to the pseudo-random noise (PRN) code of thereceived signal; adjusting the start time and frequency of the replicacode to generate the replica PRN code; delaying the replica code aplurality of times having the same delay length between adjacent delayedreplica codes; correlating each delayed replica code with the overallreceived signal; receiving the outputs of the correlating step so as togenerate an adjustment signal that adjusts the start time of the replicacode; wherein the adjustment signal causes an adjustment in the starttime of the replica code until the difference between two timecorrelation values are substantially equal to a first predeterminedvalue provided that the difference between the correlation values fortwo other delay times are less than a second predetermined value, and ifthe difference between said two other correlation values is greater thansaid second predetermined value, causing an adjustment in the start timeof the replica code until said difference between the correlation valuesof said two other delay times is less than said second predeterminedvalue.
 19. A method for reducing the effects of multipath signalcomponents associated with a received direct path signal forming anoverall received signal as defined in claim 18, wherein the delaying ofthe replica code a plurality of times delays the replica code at leastfive times, wherein the first delay time correlation value is called thelate (L) correlation value, where the second delay time correlationvalue is called the prompt (P) correlation value, where the third delaytime correlation value is called the early (E) correlation value, wherethe fourth delay time correlation value is called the E2 correlationvalue, and where the fifth delay time correlation value is called the E1correlation value, and wherein the adjustment signal further adjusts thestart time of the replica code until E−L−C1 is equal to a predeterminedvalue, where C1 is a constant, and further determining if E2−E1>C2,where C2 is a constant, and if E2−E1>C2, then further generating anadjustment signal to adjust the replica code until E2−E1−C2 is equal toa predetermined value.
 20. A method for reducing the effects ofmultipath signal components as defined in claim 19, wherein the value ofconstant C1 is in the range from 0.15 to 0.3.
 21. A method for reducingthe effects of multipath signal components as defined in claim 20,wherein the value of constant C2 is in the range from 0 to 0.1.
 22. Amethod for reducing the effects of multipath signal components asdefined in claim 19, wherein the value of constant C2 is in the rangefrom 0 to 0.1.
 23. A method for reducing the effects of multipath signalcomponents associated with a received direct path signal forming anoverall received signal as defined in claim 19, wherein the step ofdelaying the replica code a plurality of times delays the replica code Ntimes, and wherein the delay length between adjacent delayed replicacodes is equal to $\frac{1}{2 \cdot {fc}},$

where fc is the chip frequency of the PRN code.
 24. A method forreducing the effects of multipath signal components associated with areceived direct path signal forming an overall received signal asdefined in claim 18, wherein the step of delaying the replica code aplurality of times delays the replica code N times, and wherein thedelay length between adjacent delayed replica codes is equal to$\frac{1}{2 \cdot {fc}},$

where fc is the chip frequency of the PRN code.